1 BCO comparison of CASAL and Casal2 model configurations

This document compares the results of at least 2 CASAL model configurations (base and at least one sensitivity) and up to 8 Casal2 model configurations (3 BetaDiff, 2 CppAD, and 3 ADOL-C).

The CASAL model sensitivity 1 has a smaller minimisation tolerance value than the CASAL base model (1e-7 vs. 2e-5).

The Casal2 ADOL-C and BetaDiff low tolerance models have a smaller tolerance value than the CASAL base model (1e-7 vs. 2e-5). The Casal2 CppAD models have a tolerance value of 1e-9.

1.1 BCO model characteristics

The main characteristics of the Test Case BCO (ling) CASAL model are:

  • one stock, ages 3 - 20
  • one area
  • years 1900 - 2019, projection year 2020
  • one time step
  • two stock categories: male and female
  • natural mortality-at-age is 0.14 for males and 0.20 for females
  • sex-specific logistic maturity
  • sex-specific von Bertalanffy age-length relationship
  • one length-weight relationship (\(W = aL^b\))
  • Beverton-Holt stock-recruitment relationship, with steepness (h) 0.75 and \(\sigma_R\) 0.6
  • no ageing error
  • one survey with sex-specific age-based logistic selectivity
  • three fisheries, all with sex-specific length-based logistic selectivity and retained/discarded catches

Observation data include:

  • survey index
  • fishery CPUE index
  • fishery proportions-at-length

Parameters estimated include:

  • B0
  • male \(L_{\infty}\)
  • male age-length CV2
  • sex-specific survey logistic selectivity (a50 and ato95)
  • YCS (recruitment deviations)

1.2 BCO model MCMC specifications

The CASAL MCMC options include

  • start 0
  • keep 2500
  • length 4000000
  • stepsize 0.02
  • adaptive_stepsize True
  • adapt_at 10000 50000 150000 250000 450000 750000 1400000
  • df 2
  • burn_in 1000
  • proposal_t True

The Casal2 ADOL-C and BetaDiff MCMC options include

  • start 0
  • keep 2500
  • length 4000000
  • step_size 0.02
  • adapt_stepsize_at 10000 50000 150000 250000 450000 750000 1400000
  • proposal_distribution t
  • adapt_stepsize_method double_half

The Casal2 CppAD MCMC runs use the BetaDiff covariance matrices since Casal2 does not output the covariance matrix from CppAD minimisation. The Casal2 CppAD MCMC options include

  • start 0
  • keep 2500
  • length 5500000 (originally 4M)
  • step_size 0.02
  • adapt_stepsize_at 10000 50000 150000 250000 450000 750000 1400000
  • proposal_distribution t
  • adapt_stepsize_method double_half
  • adapt_covariance_matrix_at 1500000

1.3 R environment

## [1] "Mon Aug  3 17:02:18 2020"
## R version 3.6.0 (2019-04-26)
## Platform: x86_64-redhat-linux-gnu (64-bit)
## Running under: CentOS Linux 7 (Core)
## 
## Matrix products: default
## BLAS/LAPACK: /usr/lib64/R/lib/libRblas.so
## 
## locale:
##  [1] LC_CTYPE=en_NZ.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_NZ.UTF-8        LC_COLLATE=en_NZ.UTF-8    
##  [5] LC_MONETARY=en_NZ.UTF-8    LC_MESSAGES=en_NZ.UTF-8   
##  [7] LC_PAPER=en_GB.UTF_8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_NZ.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] casal2_1.0     casal_2.30     devtools_2.3.1 usethis_1.6.1  rlist_0.4.6.1 
##  [6] ggthemes_4.2.0 gridExtra_2.3  coda_0.19-3    ggmcmc_1.4.1   ggplot2_3.3.2 
## [11] tidyr_1.1.0    dplyr_1.0.1   
## 
## loaded via a namespace (and not attached):
##  [1] tidyselect_1.1.0   xfun_0.16          remotes_2.2.0      purrr_0.3.4       
##  [5] lattice_0.20-38    testthat_2.3.2     colorspace_1.4-1   vctrs_0.3.2       
##  [9] generics_0.0.2     htmltools_0.5.0    yaml_2.2.1         rlang_0.4.7       
## [13] pkgbuild_1.1.0     pillar_1.4.6       glue_1.4.1         withr_2.2.0       
## [17] RColorBrewer_1.1-2 sessioninfo_1.1.1  lifecycle_0.2.0    plyr_1.8.6        
## [21] stringr_1.4.0      munsell_0.5.0      gtable_0.3.0       evaluate_0.14     
## [25] memoise_1.1.0      knitr_1.29         GGally_1.4.0       callr_3.4.3       
## [29] ps_1.3.3           fansi_0.4.1        Rcpp_1.0.5         scales_1.1.1      
## [33] backports_1.1.8    desc_1.2.0         pkgload_1.1.0      fs_1.5.0          
## [37] digest_0.6.25      stringi_1.4.6      processx_3.4.3     grid_3.6.0        
## [41] rprojroot_1.3-2    cli_2.0.2          tools_3.6.0        magrittr_1.5      
## [45] tibble_3.0.3       crayon_1.3.4       pkgconfig_2.0.3    ellipsis_0.3.1    
## [49] data.table_1.13.0  prettyunits_1.1.1  assertthat_0.2.1   rmarkdown_2.3     
## [53] reshape_0.8.8      R6_2.4.1           compiler_3.6.0

1.4 CASAL and Casal2 model output

# source('../../R-functions/report_read_in_CASAL_MPD_files.R')
source('../../R-functions/report_read_in_CASAL_MCMC_files.R')
source('../../R-functions/report_read_in_Casal2_MPD_files.R')
source('../../R-functions/report_read_in_Casal2_MCMC_files.R')

1.5 MCMC diagnostics

1.5.1 Diagnostics for the CASAL and Casal2 model MCMC results

For the diagnostics below, the last 1000 samples for each chain are input into the diagnostic functions.